Progress in technology combined with lowering cost have proliferated the exchange of electronic data. Modern society's needs to share electronic information have abetted in the propagation of a plurality of networks. The ability to transmit information swiftly through a network may be facilitated by the network topology.
As discussed herein, a topology refers to an arrangement by which switches may be organized to direct data packet traffic through a network. In a packet-based network, information exchanged on the network tends to be sent as data packets. An example of a popular network topology is a mesh topology.
As discussed herein, mesh topology refers to a network arrangement in which each switch may be connected to at least one other switch. During a given time (e.g., recalculation period), mesh topology may have one best path for the new Media Access Control (MAC) addresses of a given destination switch. However, MAC addresses that may have already been assigned paths may continue to receive data packets through these paths until the paths becomes invalid (e.g., links may be broken, cost measurements significantly changed, etc.). Since switches may be interconnected, each switch may be able to re-route a data packet if a link in a path is broken. As discussed herein, a link refers to a connection between two switches.
To facilitate discussion, FIG. 1 shows a simple diagram of a mesh network. Mesh network 100 may include a plurality of switches (102, 104, 106, and 108) which may be interconnected with one another. In other words, each switch may have a plurality of available paths from which data packets may be sent to or received from other switches on the network. In addition, each switch may have a plurality of ports from which data packets may be sent to other switches. In this diagram, switch 102 may have three ports (A, B, and C), switch 104 may have three ports (D, E, and F), switch 106 may have three ports (G, H, and I), and switch 108 may have three ports (J, K, and L). Also, attached to each switch may be a plurality of devices (e.g., computers, printers, scanners, etc.). In an example, devices 110 and 112 may be attached to switch 102, and a device 114 may be attached to switch 106. Note that each device may have a unique MAC address that may identify the device to the network.
Although a number of paths may be available to route a data packet for new MAC addresses of a given destination switch through the mesh network, only one path to a destination switch (i.e., the switch that is the final recipient of a data packet) may be active at a given time for the use of assigning MAC addresses to the destination switch. The determination of a path for a new MAC address of a destination switch may be based on a cost protocol process that may be continuously performed during each recalculation period (e.g., a pre-determined time interval that may be, for example, about every 30 seconds). During the recalculation period, switches may exchange cost protocol packets with one another.
As discussed herein, a cost protocol packet refers to a data packet that may include cost information about each of the switches in a specific path. In addition to cost information, cost protocol packet may also include other data (e.g., number of hops, security access, etc.) that a switch may use in determining the best path for each destination switch during a recalculation period. Given the dynamic nature of a mesh network (e.g., a link between two switches may have been broken, a new switch may have been introduced into the network, and/or new MAC addresses may have changed the cost of a link), the best available path during the next recalculation period may change.
TABLE 1Examples of Available Paths for Switch 104No.PathdescriptionType1Switch 104−−>switch 102Port D switch 104 tolink 1port C switch 1022Switch 104−−>switchPort E switch 104 tolink 1108−−>switch 102port K switch 108Port L switch 108 tolink 2port A switch 1023Switch 104−−>switchPort F switch 104 tolink 1106−−>switch 108−−>switch 102port G switch 106Port I switch 106 tolink 2port J switch 108Port L switch 108 tolink 3port A switch 102
Consider the situation wherein, for example, switch 104 wants to determine the best possible path to switch 102 (see table 1 above for available paths). In the first path (i.e., switch 104 to switch 102), switch 104 may receive a cost protocol packet from switch 102 with information about the inbound cost of receiving a data packet via port C by switch 102. Upon receiving the cost protocol packet, switch 104 may add its outbound cost associated with sending a packet to switch 102 via port D. Switch 104 now has the total cost of sending a packet to switch 102 using the first path.
Similarly, the same method may be used to calculate the total cost associated with the second path. First, switch 102 may send out a cost protocol packet to switch 108 with information about the inbound cost of receiving a data packet via port A by switch 102. Upon receiving the cost protocol packet, switch 108 may add its outbound cost associated with sending a packet via port L to switch 102. Then switch 108 may add the cost of receiving a data packet via port K and forward the total cost to switch 104. Upon receiving the cost protocol packets, switch 104 may add its outbound cost associated with sending a packet to switch 108 via port E.
Using the method described above, the switches in the mesh network may calculate the cost associated with each available path. However, as costs of available paths are recalculated, the mesh network may be flooded with cost protocol packets. Generally, during the cost protocol calculations, all available paths may be traversed. Each of the switches may exchange cost protocol packets to test the performance of each path, to determine the speed of each path, to determine the number of switches that may be traversed in a path, etc. Thus, a large amount of bandwidth may be dedicated to cost protocol traffic during every recalculation period. Further, the cost associated with recalculating cost protocol may grow exponentially as the size of the network increases
Based on the cost protocol calculation, each switch may be able to determine the best path to a destination switch. In an example, if switch 104 determines that the best path to switch 102 is via the second path (i.e., switch 104→switch 108→switch 102) then each data packet originated by switch 104 may be forwarded to switch 102 by traversing through switches 104 and 108 before arriving at switch 102.
For paths with three or more switches (e.g., second and third paths in Table 1), each switch in the path may be unaware of the entire path. In other words, each switch may only be able to detect the links with its neighboring switches. In the example above, switch 104 may only be able to discern the link between it and switch 108. Switch 104 may be ignorant of the link between switch 108 and 102. Further, if the link between switch 108 and 102 is broken, switch 104 may continue to send data packets along this path, since switch 104 may be unaware of the broken link. Accordingly, switch 108 may have the burden of re-routing data packets it received from switch 104 for switch 102 until a new path may be established at the next recalculation period.
Further, with mesh topology, newly added devices to the network between each recalculation period tend to be associated with the current best path as identified by the switch. In an example, if switch 102 learns 10 new MAC addresses, then switch 104 may designate the second path (i.e., switch 104→switch 108→switch 102) as the best available path to these 10 new MAC addresses. Consequently, this second path may now become congested with the additional traffic from the additional MAC addresses. However, since switch 104 may only be aware of one best available path at a given time, switch 104 may be unable to perform load balancing (i.e., distributing packet traffic between available paths). Also, if the link between 108 and 102 is broken, switch 104 may continue to forward data packets to switch 108 since switch 104 may be unaware of the broken link. Thus, switch 108 may now have the additional burden of handling traffics for the additional 10 new MAC addresses.
There are several disadvantages associated with the prior art mesh topology. For example, since each switch does not have a complete topology of the network, the ability for each switch to respond to changing conditions may be hindered. Also, with limited knowledge of the network, the switches may be unable to perform load balancing as new devices are removed/attached to the network. Further, the network's performance may suffer during each recalculation period as the network may be flooded with a multitude of cost protocol packets.